package com.kingsoft.miot.bridge.service;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.kingsoft.miot.bridge.controller.req.OrderBy;
import com.kingsoft.miot.bridge.controller.resp.HouseInfoResp;
import com.kingsoft.miot.bridge.controller.resp.PageResult;
import com.kingsoft.miot.bridge.pojo.hotel.HouseInfo;
import org.springframework.ui.ModelMap;

/**
 * (家庭) 户 控制器
 * 
 * @author melody
 *
 */
public interface HouseService {

	/**
	 * 新增room
	 * 
	 * @param roomInfo
	 */
	public void insertOne(HouseInfo houseInfo);

	/**
	 * 通过house_id 获取houseInfo
	 * 
	 * @param room_info_id
	 * @return
	 */
	public HouseInfo getByHouseInfoId(int room_info_id);

	/**
	 * 通过hotel id 获取House info
	 * 
	 * @param hotel_info_id
	 * @return
	 */
	public List<HouseInfo> getListByHotelInfoId(int hotel_info_id);

	/**
	 * 获得所有house info
	 * 
	 * @return
	 */
	public List<HouseInfo> findAll();

	/**
	 * 通过hotel id 和 house info id 获取house info
	 * 
	 * @param hotel_info_id
	 * @param house_info_id
	 * @return
	 */
	public HouseInfoResp getByHotelInfoIdAndHouseInfoId(int hotel_info_id, int house_info_id);

	/**
	 * 通过分页和查询条件查询酒店房间
	 * 
	 * @param room_num    编号 房间
	 * @param currentPage
	 * @param pageSize
	 * @param orderByList
	 * @return
	 */
	public PageResult<HouseInfoResp> findHouseByPageAndhotelId(int hotel_info_id, int currentPage, int pageSize,
                                                               int room_num, List<OrderBy> orderByList);


	/**
	 * 查询房间列表(根据房间号等信息)
	 * @param params
	 * @return
	 */
	ModelMap findHouseListByHouseNo(JSONObject params);

	/**
	 * 添加房间
	 * @param params
	 * @return
	 */
	int insertBathHouse(JSONObject params);

	/**
	 * 根据房间ID查询某个房间信息详情
	 * @param hotelId
	 * @param houseId
	 * @return
	 */
	HouseInfo findHouseByHouseId(Integer hotelId, Integer houseId);

}
